﻿//using System;
//using System.Collections.Generic;
//using System.Web;
//using Crosland.Sami.Core;
//using System.Web.UI.WebControls;
//using System.IO;
//using System.Reflection;
//using System.Configuration;
//using Crosland.Automotriz.Core;
//using System.Drawing;
//using System.Data;
//using System.Text;
//using OfficeOpenXml;

//namespace Crosland.Automotriz.Web
//{
//    public class FormatoPedido
//    {
//        /// <summary>
//        /// Lee los artículos desde el formato excel cargado
//        /// </summary>
//        /// <param name="codCliente"></param>
//        /// <returns></returns>
//        //public List<ArticuloServ> LeerDesdeFormato(string codCliente, FileUpload fuFormato)
//        //{
//        //    try
//        //    {
//        //        List<ArticuloServ> list = new List<ArticuloServ>();
//        //        //Application oExcel = new Application();
//        //        //Workbook wb;
//        //        //Worksheet ws;

//        //        if (!string.IsNullOrEmpty(fuFormato.PostedFile.FileName))
//        //        {
//        //            string fileName = Constantes.FormatoPedido + codCliente + Constantes.ExtensionExcel2007;
//        //            string ruta = ConfigurationManager.AppSettings[Constantes.RutaArchivo].ToString();

//        //            if (File.Exists(ruta + fileName))
//        //            {
//        //                File.Delete(ruta + fileName);
//        //            }

//        //            fuFormato.PostedFile.SaveAs(ruta + fileName);

//        //            FileInfo fi = new FileInfo(ruta + fileName);

//        //            int cantidad = 1500;
//        //            int filaInicial = 9;
//        //            string articulo = string.Empty;
//        //            string cnt = string.Empty;
//        //            string familia = string.Empty;
//        //            string prefijo = string.Empty;
//        //            int count = 0;

//        //            using (ExcelPackage xlPackage = new ExcelPackage(fi))
//        //            {
//        //                // get the first worksheet in the workbook
//        //                ExcelWorksheet ws = xlPackage.Workbook.Worksheets[1];

//        //                for (int i = 0; i < cantidad; i++)
//        //                {

//        //                    if (ws.Cell(filaInicial + i, 4).Value != null)
//        //                        articulo = ws.Cell(filaInicial + i, 4).Value.ToString();
//        //                    else articulo = null;

//        //                    if (ws.Cell(filaInicial + i, 6).Value != null)
//        //                        familia = ws.Cell(filaInicial + i, 6).Value.ToString();
//        //                    else familia = null;

//        //                    if (familia == ConstantesPedido.FamiliaBajaj)
//        //                    {
//        //                        if (ws.Cell(filaInicial + i, 3).Value != null)
//        //                            prefijo = ws.Cell(filaInicial + i, 3).Value.ToString();
//        //                        else prefijo = null;
//        //                    }

//        //                    if (ws.Cell(filaInicial + i, 5).Value != null)
//        //                        cnt = ws.Cell(filaInicial + i, 5).Value.ToString();
//        //                    else cnt = null;

//        //                    if (!string.IsNullOrEmpty(articulo) && !string.IsNullOrEmpty(familia))
//        //                    {
//        //                        ArticuloServ item = new ArticuloServ();
//        //                        item.ID = prefijo + articulo;
//        //                        item.CodFamilia = familia;
//        //                        count = 1;
//        //                        if (int.TryParse(cnt, out count))
//        //                        {
//        //                            item.Cantidad = count;
//        //                        }
//        //                        else item.Cantidad = 1;
//        //                        list.Add(item);
//        //                    }
//        //                }

//        //            }


//        //            //wb = oExcel.Workbooks.Open(ruta + fileName, Missing.Value, Missing.Value, Missing.Value,
//        //            //    Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
//        //            //    Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

//        //            //ws = (Worksheet)wb.Worksheets.get_Item(1);
//        //            //oExcel.Visible = false;


//        //            //ws = null;
//        //            //wb.Close(Missing.Value, Missing.Value, Missing.Value);
//        //            //wb = null;
//        //            //oExcel.Quit();
//        //            //oExcel = null;
//        //        }
//        //        return list;
//        //    }
//        //    catch (Exception ex)
//        //    {
//        //        throw new Exception(ex.Message, ex);
//        //    }
//        //}


//        /// <summary>
//        /// Lee los artículos desde el formato excel cargado
//        /// </summary>
//        /// <param name="codCliente"></param>
//        /// <returns></returns>
//        public List<Manual> CargaFormatoSistema(int idModelo, int idFamilia, FileUpload fuFormato)
//        {
//            try
//            {
//                List<Manual> list = new List<Manual>();
//                //Application oExcel = new Application();
//                //Workbook wb;
//                //Worksheet ws;

//                if (!string.IsNullOrEmpty(fuFormato.PostedFile.FileName))
//                {
//                    string fileName = Constantes.FormatoSistema + idModelo + Constantes.CaracterGuion +
//                        idFamilia + Constantes.ExtensionExcel;
//                    string ruta = ConfigurationManager.AppSettings[Constantes.RutaArchivo].ToString();

//                    if (File.Exists(ruta + fileName))
//                    {
//                        File.Delete(ruta + fileName);
//                    }

//                    fuFormato.PostedFile.SaveAs(ruta + fileName);

//                    //wb = oExcel.Workbooks.Open(ruta + fileName, Missing.Value, Missing.Value, Missing.Value,
//                    //    Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
//                    //    Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

//                    //ws = (Worksheet)wb.Worksheets.get_Item(1);
//                    //oExcel.Visible = false;

//                    int filaInicial = 6;
//                    int MAX = 1100;



//                    FileInfo fi = new FileInfo(ruta + fileName);

//                    using (ExcelPackage xlPackage = new ExcelPackage(fi))
//                    {
//                        // get the first worksheet in the workbook
//                        ExcelWorksheet ws = xlPackage.Workbook.Worksheets[1];

//                        for (int i = filaInicial; i < MAX; i++)
//                        {
//                            object indicador = ws.Cell(i, 1).Value;

//                            if (indicador != null)
//                            {
//                                if (!string.IsNullOrEmpty(indicador.ToString()))
//                                {
//                                    Manual entity = new Manual();

//                                    entity.IdFamilia = idFamilia;
//                                    entity.IdModelo = idModelo;
//                                    object strSistema = ws.Cell(i, 9).Value;
//                                    int idSistema = (strSistema != null) ? int.Parse(strSistema.ToString()) : 0;
//                                    entity.IdSistema = idSistema;
//                                    entity.CodArticuloServ = indicador.ToString();
//                                    object strNroPagina = ws.Cell(i, 3).Value;
//                                    entity.NroPagina = (strNroPagina != null) ? int.Parse(strNroPagina.ToString()) : 0;
//                                    object strNroItem = ws.Cell(i, 4).Value;
//                                    entity.NroItem = (strNroItem != null) ? int.Parse(strNroItem.ToString()) : 0;
//                                    object strCantidad = ws.Cell(i, 7).Value;
//                                    entity.Cantidad = (strCantidad != null) ? int.Parse(strCantidad.ToString()) : 0;
//                                    object strPartNro = ws.Cell(i, 5).Value;
//                                    entity.PartNro = (strPartNro != null) ? strPartNro.ToString() : null;
//                                    object strDescripcion = ws.Cell(i, 6).Value;
//                                    entity.Descripcion = (strDescripcion != null) ? strDescripcion.ToString() : null;
//                                    object strRemark = ws.Cell(i, 8).Value;
//                                    entity.Remark = (strRemark != null) ? strRemark.ToString() : null;

//                                    if (idSistema > 0)
//                                    {
//                                        list.Add(entity);
//                                    }
//                                }
//                            }
//                        }

//                        //ws = null;
//                        //wb.Close(Missing.Value, Missing.Value, Missing.Value);
//                        //wb = null;
//                        //oExcel.Quit();
//                        //oExcel = null;
//                    }
//                    //ws = null;
//                    //wb.Close(Missing.Value, Missing.Value, Missing.Value);
//                    //wb = null;
//                    //oExcel.Quit();
//                    //oExcel = null;
//                }
//                return list;
//            }
//            catch (Exception ex)
//            {
//                throw new Exception(ex.Message, ex);
//            }
//        }


//        /// <summary>
//        /// Lee los artículos desde el formato excel cargado de pedido de fijo
//        /// </summary>
//        /// <param name="codCliente"></param>
//        /// <returns></returns>
//        public List<PedidoimpFijoDet> CargarArticuloPedidoFijo(FileUpload fuFormato)
//        {
//            try
//            {
//                List<PedidoimpFijoDet> list = new List<PedidoimpFijoDet>();
//                //Application oExcel = new Application();
//                //Workbook wb;
//                //Worksheet ws;

//                if (!string.IsNullOrEmpty(fuFormato.PostedFile.FileName))
//                {
//                    string fileName = Constantes.NombreExcelPedidoFijo;
//                    string ruta = ConfigurationManager.AppSettings[Constantes.RutaCargaTxt].ToString();

//                    if (File.Exists(ruta + fileName))
//                    {
//                        File.Delete(ruta + fileName);
//                    }

//                    fuFormato.PostedFile.SaveAs(ruta + fileName);

//                    //wb = oExcel.Workbooks.Open(ruta + fileName, Missing.Value, Missing.Value, Missing.Value,
//                    //    Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
//                    //    Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

//                    //ws = (Worksheet)wb.Worksheets.get_Item(1);
//                    //oExcel.Visible = false;

//                    int filaInicial = 2;
//                    int filaFinal = 2000;
//                    int indSalida = 0;
//                    int maxVacios = 5;

//                    FileInfo fi = new FileInfo(ruta + fileName);

//                    using (ExcelPackage xlPackage = new ExcelPackage(fi))
//                    {
//                        // get the first worksheet in the workbook
//                        ExcelWorksheet ws = xlPackage.Workbook.Worksheets[1];


//                        for (int i = filaInicial; i <= filaFinal; i++)
//                        {
//                            if (indSalida == maxVacios) break;

//                            PedidoimpFijoDet item = new PedidoimpFijoDet();

//                            string codArticulo = (ws.Cell(i, 3).Value != null) ?
//                                ws.Cell(i, 3).Value.ToString() : string.Empty;

//                            string desArticulo = (ws.Cell(i, 5).Value != null) ?
//                                ws.Cell(i, 5).Value.ToString() : string.Empty;

//                            string strPrecioNeto = (ws.Cell(i, 8).Value != null) ?
//                                ws.Cell(i, 8).Value.ToString() : string.Empty;

//                            string strImpCantidad = (ws.Cell(i, 9).Value != null) ?
//                                ws.Cell(i, 9).Value.ToString() : string.Empty;

//                            string strValorNeto = (ws.Cell(i, 10).Value != null) ?
//                               ws.Cell(i, 10).Value.ToString() : string.Empty;

//                            if (!string.IsNullOrEmpty(codArticulo))
//                            {
//                                item.CodArticuloServ = codArticulo;
//                                item.DesArticuloEn = desArticulo;
//                                decimal impCantidad = 0, impPrecioNeto = 0, impValorNeto = 0;
//                                item.ImpPrecioNeto = (decimal.TryParse(strPrecioNeto, out impPrecioNeto)) ? impPrecioNeto : 0;
//                                item.ImpValorNeto = (decimal.TryParse(strValorNeto, out impValorNeto)) ? impValorNeto : 0;
//                                item.ImpCantidad = (decimal.TryParse(strImpCantidad, out impCantidad)) ? impCantidad : 0;

//                                list.Add(item);
//                            }
//                            else
//                            {
//                                indSalida = indSalida + 1;
//                            }
//                        }

//                        //ws = null;
//                        //wb.Close(Missing.Value, Missing.Value, Missing.Value);
//                        //wb = null;
//                        //oExcel.Quit();
//                        //oExcel = null;
//                    }

//                }

//                return list;

//                //List<PedidoimpFijoDet> list = new List<PedidoimpFijoDet>();
//                //Application oExcel = new Application();
//                //Workbook wb;
//                //Worksheet ws;

//                //if (!string.IsNullOrEmpty(fuFormato.PostedFile.FileName))
//                //{
//                //    string fileName = Constantes.NombreExcelPedidoFijo;
//                //    string ruta = ConfigurationManager.AppSettings[Constantes.RutaCargaTxt].ToString();

//                //    if (File.Exists(ruta + fileName))
//                //    {
//                //        File.Delete(ruta + fileName);
//                //    }

//                //    fuFormato.PostedFile.SaveAs(ruta + fileName);

//                //    wb = oExcel.Workbooks.Open(ruta + fileName, Missing.Value, Missing.Value, Missing.Value,
//                //        Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value,
//                //        Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value);

//                //    ws = (Worksheet)wb.Worksheets.get_Item(1);
//                //    oExcel.Visible = false;

//                //    int filaInicial = 2;
//                //    int filaFinal = 2000;
//                //    int indSalida = 0;
//                //    int maxVacios = 5;

//                //    for (int i = filaInicial; i <= filaFinal; i++)
//                //    {
//                //        if (indSalida == maxVacios) break;

//                //        PedidoimpFijoDet item = new PedidoimpFijoDet();

//                //        string codArticulo = (((Range)ws.Cells[i, 3]).Value2 != null)?
//                //            ((Range)ws.Cells[i, 3]).Value2.ToString() : string.Empty;

//                //        string desArticulo = (((Range)ws.Cells[i, 5]).Value2 != null) ?
//                //            ((Range)ws.Cells[i, 5]).Value2.ToString() : string.Empty;

//                //        string strPrecioNeto = (((Range)ws.Cells[i, 8]).Value2 != null) ?
//                //            ((Range)ws.Cells[i, 8]).Value2.ToString() : string.Empty;

//                //        string strImpCantidad = (((Range)ws.Cells[i, 9]).Value2 != null) ?
//                //            ((Range)ws.Cells[i, 9]).Value2.ToString() : string.Empty;

//                //        string strValorNeto = (((Range)ws.Cells[i, 10]).Value2 != null) ?
//                //            ((Range)ws.Cells[i, 10]).Value2.ToString() : string.Empty;

//                //        if (!string.IsNullOrEmpty(codArticulo))
//                //        {
//                //            item.CodArticuloServ = codArticulo;
//                //            item.DesArticuloEn = desArticulo;
//                //            decimal impCantidad = 0, impPrecioNeto = 0, impValorNeto = 0;
//                //            item.ImpPrecioNeto = (decimal.TryParse(strPrecioNeto, out impPrecioNeto)) ? impPrecioNeto : 0;
//                //            item.ImpValorNeto = (decimal.TryParse(strValorNeto, out impValorNeto)) ? impValorNeto : 0;
//                //            item.ImpCantidad = (decimal.TryParse(strImpCantidad, out impCantidad)) ? impCantidad : 0;

//                //            list.Add(item);
//                //        }
//                //        else                         
//                //        {
//                //            indSalida = indSalida + 1;
//                //        }
//                //    }

//                //    ws = null;
//                //    wb.Close(Missing.Value, Missing.Value, Missing.Value);
//                //    wb = null;
//                //    oExcel.Quit();
//                //    oExcel = null;
//                //}
//                //return list;
//            }
//            catch (Exception ex)
//            {
//                throw new Exception(ex.Message, ex);
//            }
//        }


//    }
//}
